#!/usr/bin/python3  # Shebang行，指定Python解释器路径（Linux/Unix系统使用）
# -*- coding.utf-8 -*-  # 文件编码声明，确保支持UTF-8字符

# 导入FastAPI核心类
from fastapi import FastAPI
# 导入各业务模块的路由应用
from day20.controller.stus import stu_app  # 学生信息路由
from day20.controller.scores import score_app  # 就业信息路由
from day20.controller.emps import emp_app  # 成绩信息路由
from day20.controller.statistical_analysis import statistical_app # 统计分析路由

# 导入数据库配置
from day20.database.database import Base, engine  # Base: ORM基类，engine: 数据库引擎

import uvicorn  # 导入ASGI服务器实现

# 创建数据库表（初始化时执行一次）
Base.metadata.create_all(bind=engine)  # 执行后会创建所有继承Base的模型对应的表

# 创建FastAPI主应用实例
app = FastAPI(
    title='沃林信息管理系统',
    description='对沃林所有学生信息, 就业信息, 考核信息进行管理',
    version="v0.0.1"
)

# 加载子路由系统
app.include_router(
    stu_app,
    prefix="/Stu",  # 学生模块路径前缀
    tags=["学生信息"]  # 在API文档中显示的分组名
)
app.include_router(
    emp_app,
    prefix="/Emp",  # 就业模块路径前缀
    tags=["就业信息"]
)
app.include_router(
    score_app,
    prefix="/Score",  # 成绩模块路径前缀
    tags=["考核信息"]
)
app.include_router(
    statistical_app,
    prefix="/Statistical",  # 统计分析模块路径前缀
    tags=["统计分析"]
)

# 主程序入口
if __name__ == '__main__':
    uvicorn.run(
        "main:app",
        host="localhost",
        port=8080,
        reload=True  # 代码变更自动重启
    )

# 测试，张驰成修改
